Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

stenli981 avatar stenli981 1 Точки

Как да форматирам числа до 8 цифри след запетаята и проблем с конвертора

Здравейте как мога да форматирам числа до 8 цифри след запетаята :F8 и ми го подчертава.

и относно  конвертора

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

namespace metric_convert
{
    class Program
    {
        static void Main(string[] args)
        {
            double m = double.Parse(Console.ReadLine());
            string input = (Console.ReadLine());
            string output = (Console.ReadLine());

            double met = 1;
            double mm = 1000;
            double cm = 100;
            double mi = 0.000621371192;
            double inch = 39.3700787;
            double km = 0.001;
            double ft = 3.2808399;
            double yd = 1.0936133;
            double result = 0.0;

            if (input == "m")
            {
                if (output == "mm")
                {
                    Console.WriteLine (Math.Round((m * mm),8));
                }
                if (output == "cm")
                {
                    Console.WriteLine(m * cm);
                }
                if (output == "mi")
                {
                    Console.WriteLine(Math.Round((m * mi),8));
                }
                if (output == "in")
                {
                    Console.WriteLine(m * inch);
                }
                if (output == "km")
                {
                    Console.WriteLine(m * km);
                }
                if (output == "ft")
                {
                    Console.WriteLine(m * ft);
                }
                if (output == "yd")
                {
                    Console.WriteLine(m * yd);
                }
            }
            if (input == "mm")
            {
                if (output == "m")
                {
                    Console.WriteLine(Math.Round((m / mm),8));
                }
                if (output == "cm")
                {
                    Console.WriteLine(Math.Round((m / 10),8));
                }
                if (output == "mi")
                {
                    Console.WriteLine(Math.Round((m * mi),8));
                }
                if (output == "in")
                {
                    Console.WriteLine (Math.Round((m / 25.4),8));
                }
                if (output == "km")
                {
                    
                    Console.WriteLine(Math.Round((m * 0.000001000000),8));
                }
                if (output == "ft")
                {
                    Console.WriteLine(Math.Round((m * 0.0032808399), 8));
                }
                if (output == "yd")
                {
                    Console.WriteLine(Math.Round((m * 0.0010936133), 8));
                }
            }
            if (input == "cm")
            {
                if (output == "m")
                {
                    Console.WriteLine(Math.Round((m /100), 8));
                }
                if (output == "mm")
                {
                    Console.WriteLine(Math.Round((m * 10), 8));
                }
                if (output == "mi")
                {
                    result = result + m * 0.0000062137;
                    Console.WriteLine(Math.Round((result), 8));
                }
                if (output == "in")
                {
                    Console.WriteLine(Math.Round((m * 0.393700787), 8));
                }

            }

 

        }
    }
}

 

 

Когато конвертирам cm до mi ми изписва : 6.21E-06 на сложен 1 cm

 

0
C# OOP Basics
VasilValchanov avatar VasilValchanov 555 Точки

Тук май ти трябва decimal

0
30/05/2018 19:51:01
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

това не е за тук но иначе форматирането на мath.round си работи нормално просто в stringa трябва да му кажеш f8 или N,8 нещо такова беше за второто не съм сигурен,дали е double  или decimal разликата е само в закръглянето

 Console.WriteLine("{0:f8}",Math.Round((m * 0.393700787), 8));

а като гледам имаш и проблеми в самия код result го обявяваш на някои места го ползваш на други не, не е добра практика да печаташ с math.round и в конзолата директно по-добре една променлива  както си обявил result  и с нея да работиш после.

но с практика ще свикнеш.

0
30/05/2018 20:03:27
prohause avatar prohause 356 Точки

Колега пробвай с placeholder $"{result:F8}" 

0
stenli981 avatar stenli981 1 Точки

Помогнахте ми. Благодаря!

0
prohause avatar prohause 356 Точки

За нищо

0
stenli981 avatar stenli981 1 Точки

Имах предвид всички :D благодаря!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.