VB.NET Как уменьшить число до 1 знака после запятой?

Я использую приведенный ниже код для преобразования размера файла в байтах (тестовый файл составляет 31718 байт) в КБ (30,974609375 КБ), но я хочу отобразить его до одного десятичного знака (т.е. 30,9 КБ). Как бы я сделал это в VB.NET?

New FileInfo(FileName).Length / 1024

Спасибо


person Community    schedule 17.04.2009    source источник
comment
Ваш номер 30.974609375 вы заявили, что хотели бы, чтобы это было 30,9. Это правильно? Вы уверены, что не округляете это до 31,0? 30,9123456 будет округлено до 30,9   -  person Robin Day    schedule 17.04.2009


Ответы (3)


Если это просто отображаемый вывод, для которого вам нужно его округлить, используйте формат в ToString

Double.ToString("0.0")
person Robin Day    schedule 17.04.2009

Если вам нужно усечь, но не округлить (как следует из вашего примера), используйте Math.FLoor()

   Decimal val = Math.Floor(New FileInfo(FileName).Length / 102.4) / 10;
person Charles Bretana    schedule 17.04.2009

person    schedule
comment
Как это может быть? В вашем примере вы привели эти факты: размер = 31718, разделенный на 1024 = 30,974609375, желаемый результат = 30,9. Ответ, который вы назвали идеальным, дает 31.0. - person dbasnett; 18.04.2009
comment
Он ошибся насчет 30,9. Округление 30,97 всегда будет округляться в большую сторону, если бы оно было равно 30,94 или меньше, оно было бы округлено до 30,9. - person Mladen Mihajlovic; 18.04.2009