我试图在c ++中使用下面的公式.我将这两个变量声明为整数,我希望它们可以向上舍入,但它们似乎正在向下舍入.我已经看过这个,但似乎无法找到错误.任何帮助将不胜感激.
int user_degrees_latitude, user_degrees_longitude;
const int lat_const=(-90)
const int long_const=(-180)
sector_latitude = (user_degrees_latitude - lat_const) / (10);
sector_longitude = (user_degrees_longitude - long_const) / (10);
Run Code Online (Sandbox Code Playgroud)
对于sector_latitude,答案应为13,对于sector_longitude,答案应为11,但计算机的答案分别为12和10.
我正在尝试将纬度和经度位置从度,分,秒转换为十进制度数.但是,当我尝试在C++中执行此操作时,它会将数字四舍五入并且不会给出小数形式.我认为这是因为double和int混合操作,但我似乎无法找到问题.我在下面提供了我的代码.任何帮助将不胜感激.
#include <iomanip>
#include <cmath>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int user_degrees_latitude, user_minutes_latitude, user_seconds_latitude, user_degrees_longitude, user_minutes_longitude, user_seconds_longitude;
double total_minutes_latitude, total_degrees_latitude, total_minutes_longitude, total_degrees_longitude;
const double sixtieth = (1/60);
cout<< "Input latitude in degrees, minutes, seconds:";
cin >> user_degrees_latitude >> user_minutes_latitude >> user_seconds_latitude;
cout << "Input longitude in degrees, minutes, seconds:";
cin >> user_degrees_longitude >> user_minutes_longitude >> user_seconds_longitude;
total_minutes_latitude = (user_minutes_latitude + (((sixtieth)*user_seconds_latitude));
total_degrees_latitude = (abs(user_degrees_latitude) + ((sixtieth)*total_minutes_latitude));
total_minutes_longitude = (user_minutes_longitude + ((sixtieth)*user_seconds_longitude));
total_degrees_longitude = (abs(user_degrees_longitude) + …
Run Code Online (Sandbox Code Playgroud) 这有什么区别:
s = 0;
if (x > 0) s++;
if (y > 0) s++;
还有这个:
s = 0;
if (x > 0) s++;
else if (y > 0) s++;
任何帮助将不胜感激.