繁体   English   中英

从双重结果中获取舍入值

[英]Getting rounded value from a double result

我想在两个文本框中显示计算的净额

如果netamount = 45.60

第一个文本框应显示四舍五入的值,下一个文本框应显示四舍五入的值。

我之前已经通过c的舍入手动程序使用c来完成此操作,现在我的经理不希望我做这样的事情,因为他认为c#具有构建函数中的所有数学功能。 所以请帮我朋友。

我想获取的值四舍五入而不是小数点后的数字


编辑:(drachenstern

我想用45.8456789990之类的10个精度四舍五入一个数字,并在一个文本框中得到46个结果,在另一个文本框中得到85个结果。

询问者的数字类似double pi = 3.14159265d; 并希望在事实之后出现两个消息框: [整数] 3[2小数位] 14 ,他想知道如何最好地实现这种效果。 他只知道会给他加倍,但他不知道该数字是否会有分数。 他希望他们这样做。 希望此编辑对您有所帮助。

算术圆? http://msdn.microsoft.com/zh-CN/library/75ks3aby.aspx

@drachenstern澄清后:

Math.Round(value, 2)

文件: http//msdn.microsoft.com/en-us/library/zy06z30k.aspx

可以通过首先四舍五入来简单地进行数学运算,然后减去并乘以100(如果您不想使用两个前十进制小数),然后像这样再次四舍五入:

double pi = 3.14159265d;
int integerParth = (int)Math.Round(pi); // 3(int)
double decimalPoint = pi - integerPart; // 0.1415...(double)
int decimalPart = (int)Math.Round(decimalPoint * 100); // 14

C#中的数学函数无法给出您的期望值

我使用所有舍入值的数学函数尝试了输入45.60

这是输出:

Truncate            45
Round           46
Ceiling             46
Floor           45

我认为应该使用除此以外的其他功能来在文本框中获得.60之类的结果

为了简单起见,我建议您将其分为三个部分:

int wholeNumber; //for getting the left part of the number
int decimalPartTwoPlaces; //for assigning the right part to two characters
double pi = 3.14159265d;

wholeNumber = Math.Round(pi);
decimalPartTwoPlaces = Math.Round( ( pi - (double)wholeNumber ) * 100 ); // cast so it doesn't try and truncate the pi part

那应该具有您想要的值。 我没有测试过,但是看起来不错。 让我知道它是否不起作用,我将在其包装盒上运行它并对其进行调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM