[英]Delete last decimal value in a double
我正在用C#制作計算器。 我將來自用戶的輸入保存為雙精度。
我使用以下代碼刪除帶小數點的雙精度數字中最后輸入的數字。
i = (i - (i % 10)) / 10;
這將刪除最后一個數字。
12345將變成1234
我無法確定的是如何使十進制值發生這種情況。
2134.765必須成為2134.76
我的程序使用var來查看是否已插入點,因此我只需要數學運算即可刪除最后一個數字。
由於您正在處理字符輸入而不是數學運算 ,因此只需將輸入保留為字符串, 直到需要對其進行操作即可 。 然后刪除最后一個字符就像
input = input.Substring(0,input.Length-1);
否則,您必須處理模棱兩可的情況,例如:
最簡單的方法可能是使用您自己的數字格式-無論如何您都希望將值保留為十進制。 double
是一個糟糕的選擇。 至少要使用decimal
以便保證數字的小數點表示。
如果您真的總是只想刪除數字中的最后一位,我會用把戲並將數字轉換為字符串,然后刪除最后一個字符並返回。
var number = 123,456;
var strNumber = number;
strNumber.Remove(strNumber.Length - 1);
number = double.parse(strNumber);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.