string.Format不带小数位会产生意外的舍入 - c#

我需要更新一些现有代码,以便(有条件地)显示数字而没有小数位。

根据是否需要“£”符号使用以下两行。

currency = string.Format(CultureInfo.CurrentCulture, "{0:£#,0.00}", data);

要么

currency = string.Format(CultureInfo.CurrentCulture, "{0:#,0.00}", data);

我尝试更改此代码以使用{0:£#,0},并且删除了小数位后,“数据”值23699.99舍入为23700,而不是23699。

我尝试{0:£#,0}尝试了解发生了什么,然后再次将23699.99舍入为23700。

有人可以解释为什么会这样吗?

先感谢您。

参考方案

格式化数字时,它始终会以您选择的精度四舍五入到最接近的数字。例如,如果您将格式设置为小数点后一位,则0.86将四舍五入为0.9,而0.96将四舍五入为1.0。

同样,如果您不带小数位打印,则23699.99将舍入到23700,因为23700是没有小数位最接近23699.99的数字。

如果要四舍五入,请使用Math.Floor。

Java中的Boolean.valueOf(String)和BooleanUtils.toBoolean(String)? - java

我在Boolean.valueOf(String)和BooleanUtils.toBoolean(String)之间有一个不同的问题 。我使用我的应用程序就像代码BooleanUtils.toBoolean(defaultInfoRow.getFolderType())一样,而Boolean.valueOf(defaultInfoRow.getFolderT…

Java string.hashcode()提供不同的值 - java

我已经在这个问题上停留了几个小时。我已经注释掉所有代码,认为这与数组超出范围有关,但是这种情况仍在发生。我正在尝试使用扫描仪从文件中读取输入,存储数据并稍后使用哈希码获取该数据。但是哈希值不断变化。public static void main(String[] args) { //only prior code is to access data char…

string.split(“ _(B”) - java

基本上,这行代码行不通,我不确定原因: String[] stringHolder = string.split("_(B"); 我收到此错误:索引3附近的未封闭组此行代码有效: String[] stringHolder = string.split("_B"); 因此,这使我相信它是由“(”引起的。有人可以告诉我如…

从PHP数组中获取价值? - php

当我使用var_dump()函数检查数组的值时。var_dump($data['content']); 我有结果array(1) { [0]=> array(10) { ["IDUser"]=> string(1) "1" ["Name"]=> string(5…

在Map中,如果我们使用现有键进行修改,则不会获得ConcurrentModificationException - java

我有以下代码,我希望从情况2的情况下抛出ConcurrentModificationException,但它运行成功。据我所知,如果我对地图中的单个键执行相同的操作,则不会抛出异常,因为here但是当我重现这种具有两个案例的多个密钥的场景时,通过新密钥修改。通过现有密钥进行修改。情况1: Map<String,String> mp = new H…