decimal?
Спасибо
Вот это запрос!
Ну, гуру, иногда и у смертных возникают такие странные вопросы
Децимал слишком длинный, поэтому такой операции нету из коробки. Я бы завернул по ссылке. Кажется, лучше не сделаешь.
А что у вас там в decimal будет лежать? Может вам стоит взять int64 и хранить в нём условные копейки?
Там лежат цены. И условные копейки там не хранятся, увы. Например, валютные пары имеют точность 6-8 знаков после запятой. Технически, думаю, хватило бы и double, но фреймворк S# писан не мной, там везде decimal.
Не, в double категорически нельзя, у него начнет плыть точность на больших значениях
А зачем столько после запятой?
Math.Round(sum, 6) Округление до 6 знаков после запятой
А хоть decimal, хоть double хоть что может быть
Биржи так торгуют
Причём тут это? Пусть будет хоть 20 знаков, пихуй. Проблема в атомарности замены данных.
А в чем проблема работать с тем чем он работает? Если нужен decimal, то использовать его, и кроме math, для точности substring прикрутить можно, обрезать лишнее по завершению операции.
Вы читали внимательно вопрос, который я задал?
Только с середины ответов
В этом и проблема. Я спрашивал о возможности использования Interlocked.Exchange с decimal типом
Понял, увы такого нет, если только по ссылке использовать decimal, по другому вряд ли можно
Если decimal упаковать в объект то можно . Иначе всякие семафоры и т.д.
Ну, с гуру фон Невером к этому же и пришли по итогу. Подумаю, как это покрасивее сделать только
Ну, да, но проще в класс обернуть
Расширения как вариант дописать для класса, а там локать или семафоры
Да не, проще локально сделать обёртку и Interlocked, т.к. последний на уровне процессора и жрёт меньше ресурсов, чем semaphoreslim или какой-нибудь waithandle
Это же код писать надо.... а в объект нет... Хотя есть же ЧатГПТ и второй пилот!!!
Не, спасибо, я ретроград
Interlocked.Exchange<T> (ref T location1, T value) where T : class; Не подойдет к сожалению... where T : class мешает
Обсуждают сегодня