c# - 为什么我的代码中的“%”会产生另一个数字,而不是我自己计算时得到的数字?
问题描述
我有我的代码让我得到输入数字的位数。但是,如果我手动拨号,我会得到另一个...
让我们取 125 并 - 例如 - 将其调整为 10。我们甚至将它放在一个 while 循环中,让我们的数字每轮除以 10。我们得到:
125%10 -> 5
12,5%10 -> 2,5
1,25%10 -> 1,25
我们的总和是 8,75。但是如果我使用下面的代码,我们会得到 8。
有谁知道为什么会如此不同?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EvenOrOdd
{
class Program
{
static void Main(string[] args)
{
int num, sum = 0, r;
Console.WriteLine("\nEnter a Number : ");
num = int.Parse(Console.ReadLine());
while (num != 0)
{
r = num % 10;
num = num / 10;
sum = sum + r;
}
Console.WriteLine("Sum of Digits of the Number : " + sum);
Console.ReadLine();
}
}
}
解决方案
您应该使用浮点类型,例如 float 或 double。不能容纳数字“ int
8.75”。
只需int
用double
or替换float
它就可以了。
推荐阅读
- php - 如何检查数组在 PHP 中的未指定索引处是否有空值?
- sql - 如何在SQL中解析第n个分隔符之后的字符串
- android-studio - 在适配器中查找上下文名称
- bash - 如何在不评估命令的情况下使用 bash 插入 cronjobs?
- javascript - 总是计算 var Javascript
- c# - CefSharp - 替换响应流
- ruby-on-rails - nil的未定义方法“id”:rails中的NilClass
- javascript - 如何通过使用数组从 Google 表格中提取数据并对其进行格式化来优化 Apps 脚本代码?
- python - 如何接收用户发送给 Bot 的音频附件?
- r - R:表1输出