0

プログラムに行き詰まってしまいました。金/分を計算する必要がありますが、私の数式では望みどおりの結果が得られません。時間をフロート (1.2 時間など) に入力すると、変換は必要に応じて 80 分ではなく 72 分になります。手伝ってくれませんか ?問題がどこにあるかを以下のコメントでマークしました。そして、ここに私のコードがあります:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace YourGold
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to YourGold App! \n------------------------");
            Console.WriteLine("Inesrt your gold: ");
            int gold = int.Parse(Console.ReadLine());
            Console.WriteLine("Your gold is : " + gold);
            Console.WriteLine("Inesrt your time(In Hours) played: ");
            float hours = float.Parse(Console.ReadLine());
            int minutes = 60;
            float time = (float)hours * minutes; // Here the calculation are wrong...
            Console.WriteLine("Your total time playd is : " + time + " minutes");
            float goldMin = gold / time;
            Console.WriteLine("Your gold per minute is : " + goldMin);
            Console.WriteLine("The application has ended, press any key to end this app. \nThank you for using it.");
            Console.ReadLine();

        }
    }
}

どうもありがとう。

PSそれはこの質問に関連しています:数字のみを挿入し、時間から分に変換して金/分を計算できるようにします - UPDATED、これと同じように更新しますが、今と同じように新しい質問をするべきだったと思います(私はこのプラットフォームの使い方をまだ学んでいます :) )

4

4 に答える 4

3

組み込みを使用しTimeSpanます:

TimeSpan time = TimeSpan.FromHours(1.2);
double minutes = time.TotalMinutes;

TimeSpan.FromHoursメソッド 指定された時間数を表す TimeSpan を返します。指定は最も近いミリ秒まで正確です。

次のこともできます。

// string timeAsString = "1:20";
TimeSpan time;
if (TimeSpan.TryParse(timeAsString, CultureInfo.InvariantCulture, out time))
{
    double minutes = time.TotalMinutes;
    //... continue 
}
else
{
    // Ask user to input time in correct format
}

または:

var time = new TimeSpan(0, 1, 20, 0);
double minutes = time.TotalMinutes;
于 2013-09-19T08:32:00.347 に答える
2

本当にプログラムを思いどおりに動作させたい場合は、これを実行してください。

time = (int)hours * 60 + (hours%1)*100
于 2013-09-19T08:40:32.157 に答える
1
var minutes = TimeSpan.FromHours(1.2).TotalMinutes; // returns 72.0
于 2013-09-19T08:33:06.353 に答える