[英]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
,他想知道如何最好地实现这种效果。 他只知道会给他加倍,但他不知道该数字是否会有分数。 他希望他们这样做。 希望此编辑对您有所帮助。
可以通过首先四舍五入来简单地进行数学运算,然后减去并乘以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.